#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time      :2022/4/12 15:15
# @Author    :cjw
# 收集完测试用例，之后被调用的hook函数
from typing import List


def pytest_collection_modifyitems(
		session: "Session", config: "Config", items: List["Item"]
) -> None:
	"""
	修改测试用例名称编码，执行顺序
	:param session: pytest session 对象
	:param config: 配置信息对象
	:param items: 收集到的所有测试用例对象列表，name：用例名称，nodeid：用例路径
	:return:
	"""
	for item in items:
		# 修改用例名称和路径的编码
		# nodeid是用例对象的属性方法，真正改变的是用例对象的_nodeid属性
		item.name = item.name.encode('utf-8').decode('unicode-escape')
		item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape')
